package com.hhkj.admin.bank.service.extend;

import com.hhkj.admin.bank.domain.BankRule;
import com.hhkj.admin.bank.model.dopo.BankRuleDo;
import com.hhkj.admin.bank.model.dopo.BankRulePo;
import com.ruoyi.common.base.biz.service.extend.BaseExtendService;

import java.util.List;

/**
 * BankRuleServiceExtend
 *
 * @author HHKJ-SERVER-ZJ
 * @since 2023/6/8 14:44
 */
public interface BankRuleExtendService extends BaseExtendService<BankRule, BankRuleDo, BankRulePo>
{

    /**
     * 根据课程id 和 课程科目id
     *
     * @param courseParentId   上级课程id
     * @param courseBankTypeId 课程题库类型id
     */
    void removeByCourseParentIdAndCourseBankTypeId(Long courseParentId, Long courseBankTypeId);

    /**
     * 根据科目id 获取选题规则信息
     *
     * @param courseId         科目id
     * @param courseBankTypeId 类别题库类型id
     * @return 选题规则信息
     */
    BankRulePo getPoByCourseIdAndCourseBankTypeIdNotNull(Long courseId, Long courseBankTypeId);


    /**
     * 根据科目id 获取选题规则信息
     *
     * @param courseId         数据id
     * @param courseBankTypeId 类型id
     * @return 选题规则信息
     */
    BankRulePo getPoByCourseIdAndCourseBankTypeId(Long courseId, Long courseBankTypeId);

    /**
     * 根据类别id和题库类型id获取规则
     *
     * @param courseParentId   类别id
     * @param courseBankTypeId 题库类型id
     * @return 题库规则信息
     */
    BankRulePo getPoByCourseParentIdAndCourseBankTypeId(Long courseParentId, Long courseBankTypeId);

    /**
     * 根据上级id 删除题库规则配置信息
     *
     * @param parentId 上级id
     * @return true/false
     */
    boolean removeByParentId(Long parentId);

    /**
     * 根据条件 获取 获取题库规则列表
     *
     * @param parentId 上级配置信息id
     * @return 题库规则列表
     */
    List<BankRulePo> listPoByParentId(Long parentId);
}
